home *** CD-ROM | disk | FTP | other *** search
- /* DpbStruct -- Layout of parameter block returned by Int 21H, Fn 32H */
- /* This function is an undocumented MS-DOS service but has */
- /* been verified to work correctly on PC/MS-DOS 2.0 through */
- /* PC/MS-DOS 3.3 */
-
- struct DpbStruct {
- char Designator; /* Drive # (0=A, 1=B, ...) */
- char AltDesignator; /* As above; 0 if RAMdisk */
- unsigned SectorSize; /* Bytes per Sector */
- char ClusterSize; /* Sectors per Cluster - 1 */
- char ClusterShift; /* Log2 (Sectors per Clus) */
- unsigned FatStart; /* Sectors in Boot Record */
- char FatCopies; /* Copies of FAT */
- unsigned MaxEntries; /* Max entries in Root Directory */
- unsigned DataStart; /* 1st sector of data area */
- unsigned LastCluster; /* Last cluster number */
- char FatSize; /* Sectors in FAT */
- unsigned DirStart; /* 1St sector in Root Directory */
- long ddh; /* Internal use (?) */
- unsigned MediaType; /* Disk type code */
- long NextTable; /* chain to next disk table */
- };
-
- /*
- * MsDate -- packed date format used in directory
- */
- struct MsDate {
- unsigned d : 5;
- unsigned m : 4;
- unsigned y : 7;
- };
-
- /*
- * MsTime -- packed time format used in directory
- */
- struct MsTime {
- unsigned xx : 5;
- unsigned mm : 6;
- unsigned hh : 5;
- };
-
- /* ExtendedHeader -- header used in constructing an
- * extended file control block.
- */
-
- struct ExtendedHeader {
- char Header;
- char Zeros[5];
- char Attrib;
- };
-
- /* ExtFcb -- extended file control block */
-
- struct ExtFcb {
- struct ExtendedHeader FcbHdr;
- char DriveId;
- char FileName[8];
- char FileExtension[3];
- unsigned CurBlock;
- unsigned RecSize;
- long FileSize;
- struct MsDate Date;
- struct MsTime Time;
- char Reserved[8];
- char RecInBlock;
- long RelRecord;
- };
-
- /*
- * DirDta -- dta directory entry structure
- */
-
- struct DirDta {
- char DriveNum;
- char FileName[11];
- char Attributes;
- char Unused[10];
- struct MsTime CreateTime;
- struct MsDate CreateDate;
- unsigned FirstCluster;
- long FileSize;
- };
-
- /*
- * DirEntry -- format of an entry in the directory
- */
-
- struct DirEntry {
- unsigned char Name[8];
- char Ext[3];
- char Attribute;
- char Reserved[10];
- unsigned ModifyTime;
- unsigned ModifyDate;
- unsigned FirstCluster;
- long FileSize;
- };
-
- /*
- * ExtendedEntry -- directory structure for use with
- * extended file search
- */
-
- struct ExtendedEntry {
- struct ExtendedHeader DirHdr;
- struct DirDta Body;
- };
-
- struct ClusterEntry {
- struct ClusterEntry *Next;
- unsigned Cluster;
- };
-
- struct ClusterQueue {
- struct ClusterEntry *Head, *Current;
- int Count;
- };
-
-